package org.example;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
//修改代码
//再次开发
//32234345464
//453453464564565465
//3543454645655675545
//
//56464565465547576868768678
import java.io.IOException;

public class WordcountDriver {
    public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
        //通过 Job 来封装本次 MR 的相关信息
        Configuration conf = new Configuration();
        //System.setProperty("HADOOP_USER_NAME","root");
        //配置 MR 运行模式，使用 local 表示本地模式，可以省略
        conf.set("mapreduce.framework.name", "local");
        Job job = Job.getInstance(conf);
        //指定 MR Job jar 包运行主类
        job.setJarByClass(WordcountDriver.class);
        //指定本次 MR 所有的 Mapper Reducer 类
        job.setMapperClass(WordcountMapper.class);
        job.setReducerClass(WordcountReducer.class);
        //设置业务逻辑 Mapper 类的输出 key 和 value 的数据类型
        job.setMapOutputKeyClass(Text.class);
        job.setMapOutputValueClass(IntWritable.class);
        //设置业务逻辑 Reducer 类的输出 key 和 value 的数据类型
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);
        //使用本地模式指定处理的数据所在的位置
        FileInputFormat.setInputPaths(job, args[1]);
        //使用本地模式指定处理完成之后的结果所保存的位置
        FileOutputFormat.setOutputPath(job, new Path("D:\\hadoop-3.2.4\\test9"));
        //提交程序并且监控打印程序执行情况
        boolean res = job.waitForCompletion(true);
        //执行成功输出 0 ，不成功输出 1
        System.exit(res ? 0 : 1);
//zhushifdoffwsfjwfwjfweif
//dfjwifjiwsfjifjweifjweiof
/*fjwifjwiefweif
        ///发斯蒂芬斯蒂芬色粉
         恶违法沃尔夫为范围we

        分威尔法威风威风我饿
        utputFormat.setOutputPath(job, new Path("D:\\hadoop-3.2.4\\test9"));
        //提交程序并且监控打印程序执行情况
        boolean res = job.waitForCompletion(true);
        //执行成功输出 0 ，不成功输出 1
        System.exit(res ? 0 : 1);
//zhushifdoffwsfjwfwjfweif
    }*/
    }
}
